/*
 * ColeccionDeBytes.h
 *
 *  Created on: 6/12/2012
 *      Author: d
 */

#ifndef COLECCIONDEBYTES_H_
#define COLECCIONDEBYTES_H_
#include <vector>

#include <string>
#include "../common_components/physical_layer_commons.h"
#include "Utilidades.h"
#include "Constantes.h"
#include "ColeccionDeBits.h"
#include "Byte.h"

using namespace std;

class ColeccionDeBytes {
private:
	std::vector<Byte*>* coleccionDeBytes;
	Utilidades utilidades;

public:
	ColeccionDeBytes();

	ColeccionDeBits* obtenerColeccionDeBits();
	void normalizar(ColeccionDeBits* coleccionDeBits);
	int tamanio();
	Byte* obtener(int posicion);
	void agregarAlFinal(Byte* byte);
	virtual ~ColeccionDeBytes();
private:
	Byte* obtenerbyte(ColeccionDeBits* coleccionDeBits,int tamanioDeLaPrimerTandaDeBits);
	Byte* obtenerSiguienteByte(ColeccionDeBits* coleccionDeBits,int inicio);
	Byte* obtenerSiguienteByte(ColeccionDeBits* coleccionDeBits,int inicio,int bitsSobrantes);

};

#endif /* COLECCIONDEBYTES_H_ */
